export const STATES = ['edit', 'view', 'commit'];
export type State = 'edit' | 'view' | 'commit';

export type Buttons =
  | 'edit'
  | 'save'
  | 'add'
  | 'copy'
  | 'remove'
  | 'slots';

// export type TableSign = {
//   __id__: string;
//   __state__: State;
// };

// export type WithTableSign<T> = T & TableSign;

// export type WithoutTableSign<WithTableSigna> = Omit<
//   WithTableSigna,
//   keyof TableSign
// >;

// // value.get, value.set
// declare class Value<T> {
//   get value(): WithTableSign<T>[];
//   set value(value: T[]);
// }

// export type DataSource<T> = Value<T> & {
//   copy(indexOrId: number | string): void;
//   remove(indexOrId: number | string): void;
//   insert(raw: T, index?: number): void;
// };
